<?php

/**
 * Clase encargada de extraer y devolver las palabras clave para un texto que se le pase.
 *
 */
class palabras_clave {

	//Nota: el valor de id usado aquí será 'fTSJ9mzV34EZ1AcVAG8ocLNLfsg_Yvm7Y_Kd6BcE8Xlf_pBp0rNly5JcSb67TXfjEgYBspffzA--';
	private $id;
	private $format;

	/**
	* Constructor de la clase. Se le pasan los valores del id de Yahoo
	* y el formato, que en nuestro caso va a ser php serializado.
	*/
	public function __construct($yahoo_id, $format)
	{
		$this->id=$yahoo_id;
		$this->format=$format;
	}

	/**
	 * Método set que permite ajustar el valor de id.
	 *
	 * @param unknown_type $id
	 */
	public function set_id($id)
	{
		$this->id=$id;		
	}

	/**
	 * Método para ajustar el valor del atributo format.
	 * La variable $format puede ser: xml , json, php serializado.
	 *
	 * @param unknown_type $format
	 */
	public function set_format($format)
	{
		$this->format=$format;
	}

	/**
	 * Tiene que invocar al servicio de extracción de términos de Yahoo
	 * pasándole el texto de la noticia que estemos almacenando en ese momento.
	 *
	 *Devuelve un array con las palabras clave y null si no encuntra ninguna.
	 *
	 * @param unknown_type $texto
	 * @return unknown
	 */
	public function extraer_palabras_clave($texto)
	{
		$url="http://search.yahooapis.com/ContentAnalysisService/V1/termExtraction";
		$postData['appid'] = $this->id; //el id de la aplicación
		$postData['context'] = urlencode($texto); //el texto de la noticia
		$postData['output'] = $this->format; //el tipo de lenguage (php serializado)

		$sesionCURL = curl_init($url);
		curl_setopt($sesionCURL,CURLOPT_RETURNTRANSFER, true);
		curl_setopt($sesionCURL,CURLOPT_POST,1);
		curl_setopt($sesionCURL,CURLOPT_POSTFIELDS,$postData);

		$out = curl_exec($sesionCURL);
		curl_close($sesionCURL);

		$resultados = unserialize($out);
		$resultados = $resultados['ResultSet']['Result'];
		return $resultados;
	}
	
}
?>